<?php 
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/parameters/ParameterGetter.php';
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/exceptions/FormulaireException.php';
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/writerJSON/WriterJSON.php';
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/string/StringUtils.php';
	include_once $_SERVER["DOCUMENT_ROOT"].'/service/uc/autregroupe/GererAutreGroupeService.php';

	class GererAutreGroupeAction {
		public static function ajouter() {
			$autreGroupeEntite = GererAutreGroupeService::ajouterAutreGroupe();
			ParameterGetter::setSessionParameter("autreGroupeEntite", $autreGroupeEntite);
			WriterJSON::echoSuccessState();
		}
		
		public static function modifier() {
			$id = ParameterGetter::getRequestParameter("id", true);
			$autreGroupeEntite = GererAutreGroupeService::modifierAutreGroupe($id);
			ParameterGetter::setSessionParameter("autreGroupeEntite", $autreGroupeEntite);	
			WriterJSON::echoDonnees(array("nom" => $autreGroupeEntite->nom, "site" => $autreGroupeEntite->site, "disponible" => $autreGroupeEntite->disponible));
		}
		
		public static function getIdModifie() {
			$autreGroupeEntite = ParameterGetter::getSessionParameter("autreGroupeEntite", true);
			$id = $autreGroupeEntite->id;
			WriterJSON::echoDonnees (array("id" => "$id"));
		}
		
		public static function valider() {
			$autreGroupeEntite = ParameterGetter::getSessionParameter("autreGroupeEntite", true);
			$autreGroupeEntite->nom = ParameterGetter::getRequestParameter("nom", true);
			$autreGroupeEntite->site = ParameterGetter::getRequestParameter("site", true);
			$autreGroupeEntite->disponible = ParameterGetter::getRequestParameter("disponible", true);
			
			GererAutreGroupeAction::verifierAutreGroupeAvantValidation($autreGroupeEntite);
			GererAutreGroupeService::validerAutreGroupe($autreGroupeEntite);
			ParameterGetter::removeSessionParameter("autreGroupeEntite"); 
			WriterJSON::echoSuccess ("Le groupe a bien été ajouté/modifié");
		}
		
		public static function annuler() {
			ParameterGetter::removeSessionParameter("autreGroupeEntite");
			WriterJSON::echoSuccessState();
		}
		
		public static function supprimer() {
			$id = ParameterGetter::getRequestParameter("id", true);
			GererAutreGroupeService::supprimerAutreGroupe($id);
			WriterJSON::echoSuccess ("Le groupe a bien été supprimé");
		}
		
		private static function verifierAutreGroupeAvantValidation($autreGroupeEntite) {
			$exception = new FormulaireException();
			if (StringUtils::isEmpty($autreGroupeEntite->nom)) {
				$exception->ajouterChampNonRenseigne("Nom");
			}
			if (!StringUtils::isEmpty($autreGroupeEntite->site) && !StringUtils::startsWith($autreGroupeEntite->site, "http")) {
				$autreGroupeEntite->site = "http://".$autreGroupeEntite->site;
			}
			if ($exception->contientErreurs()) {
				throw $exception;
			}
		}
	}
?>